Al instalar el paquete de mockoon obtenemos ciertos fallos de dependencias que en teoria si que están instaladas.
El error no hace referencia a ningún archivo concreto, solo menciona cosas como libnotify y libuuid
Si hago una busqueda con zypper para libuuid veo que tengo paquetes instalados para dicha librería:
Y lo mismo para libnotify:
Haciendo prueba veo que al instalar el paquete libnotify-tools si que se cumple la dependencia, ahora ya no sale el error de libnotify al instalar el paquete de mockoon:
Esto me lleva a la pregunta de: ¿en que se basa rpm para saber si se cumple una dependencia?
Para extraer (recrear en verdad) el spec file de un archivo rpm, usamos el siguiente comando:
rpmrebuild -e -p PAQUETE
Este comando nos abrirá el editor de texto (vim en mi caso), con el contenido del spec file, podemos modificarlo directamente y el comando regenerará el archivo rpm con los nuevos cambios
Quiero ver que contenido tiene el spec file del rpm de libnotify-tools, primero descargo el rpm con zypper:
zypper in --download-only libnotify-tools
Ahora lanzamos el comando para que recree el spec file:
rpmrebuild -e -p libnotify-tools-0.8.2-1.4.x86_64.rpm
En el archivo podemos ver una linea de provides que hace referencia exactamente a libnotify, esto lo usa rpm para saber que este paquete provee libnotify
Si hacemos lo mismo con alguno de los paquetes de libuuid podemos ver lo siguiente:
Como se puede ver ninguna linea provee libuuid la mas cercana es libuuid1 pero el string no coincide exactamente, porque la dependencia no se cumple.
Para terminar extraemos el spec file del rpm de mockoon y vemos lo siguiente:
Aqui podemos ver todas las dependencias del rpm incluidas las que nos fallan, ademas el comando rpmrebuild nos permite hacer una modificación en el spec y regenerar el archivo rpm, en este caso vamos a comentar la linea de nss y añadir un or libuuid1
NOTA: al comentar la linea de nss perderemos cierta funcionalidad que nos da ese paquete, pero nos dejará instalar el rpm, cuando intentemos ejecutar una funcionalidad relacionada con ese paquete probablemente el programa de algun error relacionado con que no puede encontrar algun .so
Guardamos el archivo (:wq) y nos preguntará si queremos continuar:
Le decimos que si, y al finalizar el comando se nos muestra donde se ha generado el nuevo rpm:
Ahora al intentar instalar el nuevo rpm que se ha generado podremos instalarlo sin problemas, ya que las dependencias que fallaban están resueltas (o directamente las hemos eliminado).
zypper | rpmrebuild